---
id: knife4j-insight-mvp
title: Knife4jInsight平台版-MVP版本v1.0.0发布
description: Knife4jInsight平台版-MVP版本v1.0.0发布
keywords:
- knife4j
- Knife4jInsight
- Knife4j聚合
- 文档聚合
- 微服务聚合文档
sidebar_position: 4
author: 八一菜刀
data: 2023年9月17日
---


在之前发布的《Knife4j新产品的想法》一文中，我提到想给Knife4j的生态做一些扩展，区别于目前市面上不一样的功能或者工具产品。

主要还是聚焦在Knife4j这个开源项目上，然后将自己的一些想法进行输出,并将一些在单体工具组件中无法解决落地的需求场景，共同灌注在这个新的产品中。

今天,Knife4jInsight平台版-MVP(Minimum Viable Product)最小可行性版本v1.0.0终于来了

**Knife4jInsight是简单、方便的OpenAPI接口规范文档聚合开放平台！**

产品地址：http://knife4j.net

## 写在前面

在很多年前，我的工作中的老大哥卢员外(`微信公众号:土猛的员外`)，那时候我们经常讨论如何创造产品、一个公司的产品及商业模式要如何保持市场竞争力，多年过去了,令我印象最深刻的就是**三级火箭理论**

- **第一级火箭:**提供基本产品或服务，搭建高频头部流量
- **第二级火箭:**沉淀用户的商业场景，吸引更多用户和收入；
- **第三级火箭:**完成商业闭环，创造更多价值。

以360的产品三级火箭为例：

> 360的第一级火箭是免费杀毒工具。它利用这级火箭打破了持续10年的杀毒软件市场三国鼎立的局面，成为用户量最大的安全工具
>
> 360的第二级火箭是从免费杀毒工具变为安全网络平台，进而推出360安全浏览器和360安全网址导航
>
> 360的第三级火箭就是它最终承载的商业闭环，从安全浏览器和网址导航的广告收入，获得企业的经营利润

在迄今为止,我给Knife4j造了一些生态组件，主要如下：

- ✅ Knife4j：开源ui库,区别于官方swagger-ui组件，根据OpenAPI规范，重写ui交互，开发者在文档预览及调试时可以拥有不同的文档体验
- ✅ Knife4j-aggregation: 基于Servlet体系下的聚合组件,打通众多注册中心实现聚合
- ✅ knife4j-gateway：基于Spring Cloud Gateway网关组件下的聚合组件，开发者在网关组件下聚合微服务OpenAPI接口只需要简单的4行配置即可完成聚合，为开发者提供文档聚合能力的同时，也有效降低了开发者的学习成本

将三级火箭理论应用到开源项目Knife4j上面，到今天为止，我觉得算是勉强完成了第一级别的火箭路程，我也希望能够将这个项目一直维护下去,按照这个产品理论去执行,算是一种人生经历。而Knife4jInsight平台版本的诞生，我觉得是时候去落地一些商业化的场景了

> 我不确定现在三级火箭理论是否已经过时，但创造更好的产品一直是每个技术人应该追求的目标

如果将开源项目Knife4j比做一次创业,那这正是一次践行实战之旅，做商业化的场景需求落地，从这个产品本身而言我觉得有几个好处：

- 产品本身是来源于社区,Knife4jInsight和开源Knife4j组件并不冲突，一个是单体组件,一个是平台,职责会有所不同
- 来自商业化产品的挑战,付费用户驱动者产品的迭代更新,提供更好的产品功能和服务
- 商业化产品的更新迭代以及开源项目同驱动项目的发展,在哪怕得到一小部分资金收入的保障,对于开源作者也是一种宝贵财富,避免项目停更烂尾
- 个人想法的践行与市场的融合,是挑战，令人兴奋

## 产品定位

该产品主要功能定位：

- 🌱 基于开源项目**[Knife4j](https://github.com/xiaoymin/knife4j)**而来，整合开源单体组件中无法解决的企业级需求场景
- 🔒 聚焦**Swagger2**、**OpenAPI3**、**AsyncAPI**等接口规范的**文档展示**和**调试**功能
- 🏝️ 提供OpenAPI规范接口文档的存档、历史版本、预览、调试、导出、鉴权等一系列功能操作
- 🏝️ 为开发者提供统一的OpenAPI接口文档开放、预览、调试服务，开箱即用
- ⛺ 未来，我们是：**统一OpenAPI接口开放平台**、**统一OpenAPI接口文档管理平台**

## 产品名称

给产品取名是一件令人头痛的事情，从目前的功能定位来看，可能将该产品命名为`Knife4jCloud`可能更合适一些，cloud意为云数据中心，将Knife4j界面功能提供的数据整合到云上，进行统一处理。

但我还是更钟意`Knife4jInsight`，主要有几层含义：

- 语意上,`Insight`有洞察之意,对于聚焦在API接口领域而言，提供对OpenAPI接口的全方位洞察、了解
- 不仅仅只是将OpenAPI接口进行云上数据聚合,区别于`Cloud`，这为以后产品的新功能扩展迭代奠定基调
- 作为OpenAPI接口的平台,平台的职责需要把OpenAPI接口内容讲清楚,说明白

**哪怕目前`Knife4jInsight`还没有达到产品名所定位的寓意高度,但也这驱使我们努力向前,为客户创造更有价值的功能。**

## 技术架构

技术架构图如下：

![img](http://knife4j.net/assets/knife4jInsight-2.df80b220.png)

技术架构平台的定位是开放平台和接口文档管理平台进行职责区分：

- **OpenAPI接口开放平台**：对于开放平台的接口路由，统一通过Apache APIXIS实现服务的鉴权及下游服务的转发
- **OpenAPI接口文档平台**：对于OpenAPI接口文档的预览、调试，则由平台进行统一处理，提供基于开源项目Knife4j的文档展示方案

在Knife4jInsight的前期，我们着重先把**OpenAPI接口文档平台**的功能做好，因为产品依靠开源项目`Knife4j`起家,这是该产品的本职工作.

## 功能架构

> 在功能架构中，我们加入了一些未来产品要加入的功能,虽然目前MVP版本并未实现,但会在迭代Knife4j开源版本的同时,保持对该版本的升级迭代

功能架构图如下：

![img](http://knife4j.net/assets/knife4jInsight-1.54221d51.png)

在功能上，主要是三大块的功能：

- **开放文档的统一管理**：借助于Knife4j的前端界面，接口文档完全遵循Swagger2/OpenAPI3规范，下游或者外游服务的接口文档，只需要是符合规范的，都可以统一在平台进行管理维护，并提供文档最基础的预览、调试、鉴权访问等功能
- **开发密钥统一管理**：开发者开放的API接口，很多时候，如果要对外的情况下，通常开发者们都需要实现接口的鉴权控制逻辑，而如果每个服务或不同的项目都实现一遍，那太耗费精力了，对于聚合上来的接口文档，所对应的下游服务，都可以通过该平台进行统一的管理，分配鉴权及管理开放用户
- **下游服务统一管理**：一旦涉及到开放平台，那么网关的企业级别高性能要求不可避免，这不是Knife4j的强项，作为开放平台网关层，这里考虑Apache APISIX来实现服务的分发，依靠Apache APISIX提供的Admin API接口，平台通过将下游服务的转发规则进行动态注册，这样接口文档和开放平台就从功能职责上进行了区分，互相存在依赖关系，但职责分工不同

平台的网关鉴权，通过实现**Apache APIXIS**的鉴权插件，植入到网关组件中，此时所有开放平台的网关入口流量，都会通过该插件与Knife4jInsight中的开发密钥进行联动，实现接口的鉴权。

## 产品定价

`Knife4jInsight`版本是商业化产品,但是我想既然面对的主要群体都是开发者,虽然是平台，但也更多的是工具,为开发者提供方便的工具

也思考了良久，最终产品价格定价在**49.9**元，主要是软件license的价格

主要体现在：

- 在目前Knife4jInsight在线版本中，可以在线体验，付费后不限Namespace、ApiRegister的数量

- 以Docker镜像提供交付,开发者可以将该版本独立部署在私有环境,保证企业数据安全

- 购买的License是永久期限使用,没有时间限制

- License限定部署域名(最大支持5个域名/ip授权)

- License限定平台更新周期,平台免费更新期限1年

 > 即自购买该license后，Knife4jInsight在之后1年内的任何版本更新，都可以使用该license进行免费更新,超过期限后的新版本,则需要重新购买license

- 技术支持、技术咨询、开源社区issue、开发交流群

 > 有任何技术问题可通过社区issue、交流群找到作者进行沟通反馈，或者通过邮箱:`xiaoymin@foxmail.com`与作者取得联系

Knife4jInsight提供了在线版本，域名：https://console.knife4j.net

开发者可以在线试用,及完成license的购买行为

## 最后

目前是Knife4jInsight的MVP版本，该产品还在发展中，我给该产品规划了roadmap，主要如下：

>  如果您有好的想法或者建议，可以通过在开源项目[Knife4j](https://github.com/xiaoymin/knife4j)中提[issues](https://github.com/xiaoymin/knife4j/issues)或者[discussions](https://github.com/xiaoymin/knife4j/discussions)进行反馈

| 功能                                                         | 进度   | 发布日期 | 发布版本 |
| ------------------------------------------------------------ | ------ | -------- | -------- |
| 平台管理OpenAPI数据源接口文档自动i18n,支持中英双语           | 待开发 | `-`      | `-`      |
| 微服务OpenAPI规范数据源自动注册上报                          | 待开发 | `-`      | `-`      |
| 整合开源swagger-ui组件，平台中可进行OpenAPI规范接口设计      | 待开发 | `-`      | `-`      |
| 打通开源注册中心(Nacos\Eureka\Consul等等),获取服务中的OpenAPI数据源 | 待开发 | `-`      | `-`      |

产品首页：http://knife4j.net

产品试用：https://console.knife4j.net

期待Knife4j和Knife4jInsight齐头并进,创造更好的产品服务！！！